// $Header: $
// Copyright (c) CODE Consulting and Development, s.r.o., Plzen. All rights reserved.
// ReSharper disable ArrangeModifiersOrder
// WebService1: A simple Web service using ASMX technology. Provides "Hello World" method to read a value of an OPC
// "Classic" item. The web service can be tested using the integrated test facility.
using System.Web.Services;
using OpcLabs.EasyOpc.DataAccess;
using OpcLabs.EasyOpc.DataAccess.Extensions;
namespace WebService1
{
/// <summary>
/// Summary description for Service1
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Service1 : WebService
{
static Service1()
{
// Enable auto-subscribing optimization (not necessary), which can improve performance with repeated Read requests.
Client.TryEnableAutoSubscribingOptimization();
}
// Use a shared client instance to allow for better optimization.
static private readonly EasyDAClient Client = new EasyDAClient();
[WebMethod]
public string HelloWorld()
{
// The following call may throw an OpcException, which would be reported to the client.
// Production-quality code may need to catch the OpcException and handle it differently.
object value = Client.ReadItemValue("", "OPCLabs.KitServer.2", "Demo.Ramp");
return value?.ToString() ?? "";
}
}
}
' WebService1: A simple Web service using ASMX technology. Provides "Hello World" method to read a value of an OPC item.
Imports System.Web.Services
Imports OpcLabs.EasyOpc.DataAccess
Imports OpcLabs.EasyOpc.DataAccess.Extensions
''' <summary>
''' Summary description for Service1
''' </summary>
<WebService(Namespace:="http://tempuri.org/"), WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1), ComponentModel.ToolboxItem(False)> _
Public Class Service1
Inherits WebService
' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
' [System.Web.Script.Services.ScriptService]
Shared Sub New()
' Enable auto-subscribing optimization (not necessary), which can improve performance with repeated Read requests.
Client.TryEnableAutoSubscribingOptimization()
End Sub
' Use a shared client instance to allow for better optimization.
Shared ReadOnly Client As New EasyDAClient
<WebMethod()> _
Public Function HelloWorld() As String
' The following call may throw an OpcException, which would be reported to the client.
' Production-quality code may need to catch the OpcException And handle it differently.
Dim value As Object = Client.ReadItemValue("", "OPCLabs.KitServer.2", "Demo.Ramp")
Return If(value Is Nothing, "", value.ToString())
End Function
End Class